System and method for presence notification for video projection status

ABSTRACT

In accordance with one embodiment of the present invention, a method is provided for communicating a presence notification to an end-point of a demand-based messaging system. The method includes monitoring an auxiliary output port for a video signal; detecting a video signal on the auxiliary output port; and reporting a video projection status to the end-point. In additional or alternative embodiments of the method, the method may include receiving a message from the end-point and blocking the message from being displayed on the auxiliary output port. In yet another additional or alternative embodiment of the method, the method may include sending a message to the end-point indicating that the message has been blocked.

TECHNICAL FIELD OF THE INVENTION

This invention relates in general to demand-based messaging systems, and more particularly to providing a presence notification for a user projecting video.

BACKGROUND OF THE INVENTION

The popularity of demand-based messaging systems, including instant messaging (IM) systems, has exploded in recent years. The utility of IM systems certainly has not gone unnoticed in the corporate world, either. Today, organizations routinely use IM systems to facilitate communications between employees and other members of the organization. The popularity of IM systems, though, increases the risk that users will inadvertently disclose confidential or personal information to unintended recipients. This risk is particularly acute when an IM user is using an IM-enabled computer to project video to an audience. A computer typically projects everything that is displayed on the computer screen; thus, messages received during such a presentation also are typically projected. Obviously, such a scenario can be problematic and potentially embarrassing to a recipient that receives a message containing confidential or personal information while projecting video to an audience.

SUMMARY OF THE INVENTION

In accordance with some of the teachings of the present invention, the disadvantages and problems associated with using an IM system while projecting video have been substantially reduced or eliminated.

In accordance with one embodiment of the present invention, a method is provided for communicating a presence notification to an end-point of a demand-based messaging system. The method includes monitoring an auxiliary output port for a video signal; detecting a video signal on the auxiliary output port; and reporting a video projection status to the end-point of the demand-based messaging system. In additional or alternative embodiments of the method, the method may include receiving a message from an endpoint and blocking the message from being displayed on the auxiliary output port. In yet another additional or alternative embodiment of the method, the method may include sending a message to the end-point indicating that the message has been blocked.

In accordance with another embodiment of the present invention, a computer system is provided for communicating a presence notification to an end-point of a demand-based messaging system. The computer system includes a memory having an encoded method for monitoring an auxiliary output port for a video signal; detecting a video signal on the auxiliary output port; and reporting a video projection status to the end-point of the demand-based messaging system. In additional or alternative embodiments of the computer system, the method may include receiving a message from the end-point and blocking the message from being displayed on the auxiliary output port. In yet another additional or alternative embodiment of the computer system, the method may include sending a message to the end-point indicating that the message has been blocked.

Important technical advantages of certain embodiments of the present invention include automatically detecting a video signal on an auxiliary port of a computer and setting a presence status notifying other users that the computer is projecting video.

Other technical advantages of the present invention may be readily apparent to one skilled in the art from the following figures, descriptions, and claims. Moreover, while specific advantages have been enumerated above, various embodiments may include all, some, or none of the enumerated advantages.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the present invention and its advantages, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which:

FIG. 1 is a block diagram of a general purpose computer system for processing data in accordance with one embodiment of the present invention;

FIG. 2 is a flow diagram of an example operation of the present invention; and

FIG. 3 is a flow diagram of an example operation of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 1 is a block diagram of a general purpose computer system 100 for executing processing in accordance with one embodiment of the present invention. Other computer system architectures and configurations can be used for carrying out the processing of the present invention. Computer system 100, made up of various subsystems described below, includes at least one central processing unit (CPU) 102. CPU 102 can be implemented by a single-chip processor or by multiple processors. CPU 102 is a general purpose digital processor that controls the operation of the computer system 100. Using instructions retrieved from memory 110, the CPU 102 controls the reception and manipulation of input data, and, further, the output and display of data on output devices.

CPU 102 is coupled bi-directionally with memory 110, which can include a first primary storage [typically a random access memory (RAM)] and a second primary storage area [typically a read-only memory (ROM)]. Primary storage can be used as a general storage area and as scratch-pad memory, and can also be used to store input data and processed data. It can also store programming instructions and data, in the form of data objects and text objects, in addition to other data and instructions for processes operating on CPU 102. Also, primary storage typically includes basic operating instructions, program code, data, and objects used by the CPU 102 to perform its functions. Primary storage devices 110 may include any suitable computer-readable storage media, described below, depending on whether, for example, data access needs to be bi-directional or uni-directional. CPU 102 can also directly and very rapidly retrieve and store frequently needed data in a cache memory (not shown).

A removable mass storage device 112 provides additional data storage capacity for the computer system 100, and is coupled either bi-directionally or uni-directionally to CPU 102. For example, a specific removable mass storage device commonly known as a CD-ROM typically passes data uni-directionally to the CPU 102, whereas a floppy disk can pass data bi-directionally to the CPU 102. Storage 112 may also include computer-readable media such as magnetic tape, flash memory, signals embodied on a carrier wave, PC-CARDS, portable mass storage devices, holographic storage devices, and other storage devices. A fixed mass storage 120 can also provide additional data storage capacity. One common example of mass storage 120 is a hard disk drive. Mass storage 112, 120 generally store additional programming instructions, data, and the like that typically are not in active use by the CPU 102. It will be appreciated that the information retained within mass storage 112, 120 may be incorporated, if needed, in standard fashion as part of primary storage 110 (e.g., RAM) as virtual memory.

In addition to providing CPU 102 access to storage subsystems, bus 114 can be used to provide access other subsystems and devices as well. In the described embodiment, these can include a display monitor 118, a network interface 116, a keyboard 104, and a pointing device 106, as well as an auxiliary input/output device interface, a sound card, speakers, and other subsystems as needed. The pointing device 106 may be a mouse, stylus, track ball, tablet, or any other element that is useful for interacting with a graphical user interface.

The network interface 116 allows CPU 102 to be coupled to another computer, computer network, or telecommunications network using a network connection as shown. Through the network interface 116, it is contemplated that the CPU 102 might receive information (e.g., data objects or program instructions from another network), or it might output information to another network in the course of performing the above-described operation. Information, often represented as a sequence of instructions to be executed on a CPU, may be received from and outputted to another network, for example, in the form of a computer data signal embodied in a carrier wave. The origin or destination of such a computer data signal is referred to generally herein as an “end-point.” An interface card or similar device and appropriate software implemented by CPU 102 can be used to connect the computer system 100 to an external network and transfer data according to standard protocols. That is, method embodiments of the present invention may be executed solely upon CPU 102, or they may be performed across a network such as the Internet, intranet networks, or local area networks, in conjunction with a remote CPU that shares a portion of the processing. Additional mass storage devices (not shown) may also be connected to CPU 102 through network interface 116.

An auxiliary I/O port 125 can be used in conjunction with computer system 100. The auxiliary I/O port 125 can include general and customized interfaces that allow the CPU 102 to send and, more typically, receive data from other devices such as microphones, touch-sensitive displays, transducer card readers, tape readers, voice or handwriting recognizers, biometrics readers, cameras, portable mass storage devices, and other computers. With respect to the present invention, auxiliary I/O port 125 typically is an auxiliary output port attached to an external display device, such as a video projector.

In addition, embodiments of the present invention further relate to computer program products that contain program code for performing various computer-implemented operations. The program code generally is encoded in a computer-readable medium, which is any data storage device that can store data and thereafter be read by a computer system. The media and program code may be those specially designed and constructed for the purposes of the present invention. Examples of computer-readable media include, but are not limited to, all the media mentioned above; magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROM disks; magneto-optical media such as floptical disks; and specially configured hardware devices such as application-specific integrated circuits (ASICs), programmable logic devices (PLDs), and ROM and RAM devices. The computer-readable medium can also be distributed as a data signal embodied in a carrier wave over a network of coupled computer systems so that the computer-readable code is stored and executed in a distributed fashion. Moreover, embodiments related to computer program products may be implemented in and executed from any local (embedded or attached) or remote device that is capable of monitoring auxiliary video I/O port 125. Examples of program code include both machine code, as produced, for example, by a compiler, or files containing higher level code that may be executed using an interpreter.

In general, the above described hardware and software elements are of standard design and construction. Other computer systems suitable for use with the invention may include additional or fewer subsystems. In addition, bus 114 is illustrative of any interconnection scheme serving to link the subsystems. The computer system shown in FIG. 1 is but one example of a computer system suitable for use with the invention. Other computer architectures having different configurations of subsystems also may be utilized.

In conjunction with certain embodiments of the present invention described below, one or more computer systems interact with an IM system. Typically, the IM system uses a network interface, such as network interface 116, to exchange messages, presence notifications, and other data between end-points.

FIG. 2 and FIG. 3 are flow diagrams illustrating certain operations of the present invention. Note that the flow diagrams disclosed herein are merely examples of an embodiment according to the present invention. It should be noted that the same or similar objectives can be achieved in various manners, for example, the order of many of the steps shown in the flow diagram can be reorganized and yet achieve the same objective.

FIG. 2 is a flow diagram of a certain operation of the present invention for providing a video projection status to end-points of an improved instant messaging system. As noted above, an end-point represents the origin or destination in the instant messaging system. In the context of this description, an end-point may represent a hardware component, a software component, or an end-user. As illustrated in FIG. 2, auxiliary output port 125 is monitored continuously (step 200). The present invention may be configured to detect various end-point configurations that, in conjunction with a video signal on auxiliary port 125, indicate that the end-point is in a video projection mode. For instance, a laptop computer often uses the auxiliary port to connect to a larger monitor. Such a use of the auxiliary port likely does not necessitate a video projecting status for the endpoint. In such a configuration, the internal display may often be disabled or used to display different data than that displayed on the larger monitor. In contrast, if the internal display is configured to display the same data that is displayed through the auxiliary port, then it is likely that the end-point is in a video projection mode. Moreover, some end-points may have an internal video projection function that explicitly configures the end-point for projecting. The present invention likewise may be configured to detect such explicit configurations. Finally, some software applications provide application-level controls for configuring an end-point for projection, and the present invention also may be configured to detect such application-level controls. If, according to a certain prescribed configuration, it is determined that an end-point is in a video projection mode, then a video projecting status is transmitted through network interface 116 to the IM system (step 210). Improved IM clients (in communication with the IM system) can then display an icon or other status indicator reflecting the video projection status (step 215). If an instant message is received through network interface 116, the message may optionally be blocked from display through auxiliary output port 125 (step 220) and, optionally, a message may be sent to the sender notifying the sender that the message was blocked (step 230).

FIG. 3 is a flow diagram of another example operation of the present invention for providing a video projection status to users of a conventional instant messaging system. As illustrated in FIG. 3, auxiliary output port 125 is monitored continuously (step 300). If a video signal is detected on auxiliary port 125, then a custom video projecting message is transmitted through network interface 116 to the IM system (step 310). IM clients (in communication with the IM system) can then display the custom video projection message, reflecting the video projection status (step 315). If an instant message is received through network interface 116, the message may optionally be blocked from display through auxiliary output port 125 (step 320) and, optionally, a message may be sent to the sender notifying the sender that the message was blocked (step 330).

Many conventional IM clients are capable of displaying custom messages alongside standard status icons. Accordingly, a significant advantage of the embodiment illustrated in FIG. 3 is its compatibility with conventional IM clients, while allowing improved IM clients to use supplementary information included in a custom video projection message. More specifically, this embodiment enables a user that is projecting to leverage the automatic detection features of the present invention and transmit this information to other users, even if the other users have not upgraded to an improved IM client that also implements the features of the present invention.

Although the present invention has been described with several embodiments, a myriad of changes, variations, alterations, transformations, and modifications may be suggested to one skilled in the art, and it is intended that the present invention encompass such changes, variations, alterations, transformations, and modifications as fall within the scope of the appended claims.

Certain novel aspects of the present invention also may be combined with other techniques of communicating supplemental presence information. For example, one embodiment of the present invention may monitor auxiliary output port 125 and insert a privacy element as an extension to the standard Presence Information Data format (commonly referred to as PIDF). IM users having extension-enabled IM clients then would be able to discern another end-point's video projection status based on the privacy element. 

1. A method for providing a presence notification to an end-point of a demand-based messaging system, the method comprising: monitoring an auxiliary output port; determining if the auxiliary output port is configured for video projection; and reporting a video projection status to the end-point if the auxiliary output port is configured for video projection.
 2. The method of claim 1, further comprising: receiving a message from the end-point; and blocking the message from being displayed on the auxiliary output port.
 3. The method of claim 1, further comprising: receiving a first message from the end-point; blocking the message from being displayed on the auxiliary output port; and sending a second message to the end-point indicating that the first message has been blocked.
 4. The method of claim 1, wherein the step of reporting the video projection status comprises: inserting a privacy element as an extension to a Presence Information Data Format message.
 5. The method of claim 1, wherein the step of determining if the auxiliary output port is configured for video projection comprises: detecting a video signal on the auxiliary output port.
 6. The method of claim 1, wherein the step of determining if the auxiliary output port is configured for video projection comprises: detecting a video signal on the auxiliary output port; and determining that an internal display is configured to display the same data as the auxiliary output port.
 7. The method of claim 1, wherein the step of determining if the auxiliary output port is configured for video projection comprises: detecting activation of an internal video projecting function that explicitly configures the auxiliary output port for projecting.
 8. The method of claim 1, wherein the step of determining if the auxiliary output port is configured for video projection comprises: detecting activation of an application-level control that configures the auxiliary output port for projecting.
 9. An apparatus for providing a presence notification to an end-point of a demand-based messaging system, the apparatus comprising: a first processing component operable to monitor an auxiliary output port and determine if the auxiliary output port is configured for video projection; and a second processing component operable to report a video projecting status end-point if the first processing component determines that the auxiliary output port is configured for video projection.
 10. The apparatus of claim 9 further comprising: a third processing component operable to receive a message from the end-point; and a fourth processing component operable to block the message from being displayed through the auxiliary output port.
 11. The apparatus of claim 10 further comprising: a fifth processing component operable to send a message to the end-point indicating that the message has been blocked.
 12. The apparatus of claim 9, further comprising a network interface component; wherein the second processing component reports the video projecting status through the network interface component.
 13. The apparatus of claim 9, wherein the second processing component reports the video projecting status as a privacy element in Presence Information Data Format message.
 14. The apparatus of claim 9, further comprising: a network interface component; a third processing component operable to receive a message from the end-point through the network interface component; and a fourth processing component operable to block the message from being displayed through the auxiliary output port.
 15. The apparatus of claim 14 further comprising: a fifth processing component operable to send a message to the end-point through the network interface component indicating that the message has been blocked.
 16. The apparatus of claim 9, wherein the first processing component determines if the auxiliary output port is configured for video projection by: detecting a video signal on the auxiliary output port.
 17. The apparatus of claim 9, wherein the first processing component determines if the auxiliary output port is configured for video projection by: detecting a video signal on the auxiliary output port; and determining that an internal display is configured to display the same data as the auxiliary output port.
 18. The apparatus of claim 9, wherein the first processing component determines if the auxiliary output port is configured for video projection by: detecting activation of an internal video projecting function that explicitly configures the auxiliary output port for projecting.
 19. The apparatus of claim 9, wherein the first processing component determines if the auxiliary output port is configured for video projection by: detecting activation of an application-level control that configures the auxiliary output port for projecting.
 20. Software for providing a presence notification to an end-point of a demand-based messaging system, the software being embodied in a computer readable medium and comprising code such that when executed is operable to: monitor an auxiliary output port; determine if the auxiliary output port is configured for video projection; and report a video projection status to the end-point if the auxiliary output port is configured for video projection.
 21. The software of claim 20, wherein the code is further operable to: receive a message from the end-point; and block the message from being displayed on the auxiliary output port.
 22. The software of claim 21, wherein the code is further operable to: send a message to the end-point indicating that the message has been blocked.
 23. The software of claim 20, wherein the code for determining if the auxiliary port is configured for video projection comprises code such that when executed is operable to: detect a video signal on the auxiliary output port.
 24. The software of claim 20, wherein the code for determining if the auxiliary port is configured for video projection comprises code such that when executed is operable to: detect a video signal on the auxiliary output port; and determine that an internal display is configured to display the same data as the auxiliary output port.
 25. The software of claim 20, wherein the code for determining if the auxiliary port is configured for video projection comprises code such that when executed is operable to: detect activation of an internal video projecting function that explicitly configures the auxiliary output port for projecting.
 26. The software of claim 20, wherein the code for determining if the auxiliary port is configured for video projection comprises code such that when executed is operable to: detect activation of an application-level control that configures the auxiliary output port for projecting.
 27. Software comprising: means for monitoring an auxiliary output port; means fordetermining if the auxiliary output port is configured for video projection; and means for reporting a video projection status to an end-point of a demand-based messaging system if the auxiliary port is configured for video projection.
 28. The software of claim 27 further comprising: means for receiving a message from the end-point; and means for blocking the message from being displayed on the auxiliary output port.
 29. The software of claim 28 further comprising: means for sending a message to the end-point indicating that the message has been blocked.
 30. The software of claim 27, wherein the means for reporting the video projection status comprises: inserting a privacy element as an extension to a Presence Information Data Format message.
 31. The software of claim 27, further comprising: means for receiving a message from the end-point; means for blocking the message from being displayed on the auxiliary output port; and wherein the means for reporting the video projection status comprises inserting a privacy element as an extension to a Presence Information Data Format message.
 32. The software of claim 27, further comprising: means for receiving a first message from the end-point; means for blocking the first message from being displayed on the auxiliary output port; means for sending a second message to the end-point indicating that the first message has been blocked; and wherein the means for reporting the video projection status comprises inserting a privacy element as an extension to a Presence Information Data Format message. 